Batch Script-এ টেক্সট ফাইল থেকে ডেটা বের করা (Data Extraction) খুবই গুরুত্বপূর্ণ একটি কাজ, যেটি আপনাকে ফাইল থেকে তথ্য প্রক্রিয়া করতে এবং নির্দিষ্ট ডেটা নিয়ে কাজ করতে সহায়তা করে। for /f কমান্ড ব্যবহার করে Batch Script-এ ফাইলের প্রতিটি লাইনে লুপ করে গিয়ে ডেটা বের করা সম্ভব হয়।
for /f কমান্ডের গঠন
for /f "options" %%variable in (file) do command
- options: ফাইলের লাইনগুলো কিভাবে প্রক্রিয়া করা হবে তা নির্দেশ করে। যেমন:
"tokens=*"বা"delims=,"। - %%variable: ফাইলের প্রতিটি লাইনের ডেটা ধারণ করার জন্য ব্যবহৃত ভেরিয়েবল।
- file: যে টেক্সট ফাইল থেকে ডেটা বের করতে চান তার পাথ।
- command: ফাইলের ডেটা নিয়ে আপনি যেই কমান্ড চালাতে চান।
উদাহরণ ১: ফাইলের প্রতিটি লাইন প্রিন্ট করা
যদি আপনি একটি টেক্সট ফাইলের প্রতিটি লাইন প্রিন্ট করতে চান, তাহলে নিম্নলিখিত স্ক্রিপ্ট ব্যবহার করতে পারেন।
টেক্সট ফাইল: data.txt
apple
banana
cherry
Batch Script:
@echo off
for /f "tokens=*" %%a in (data.txt) do (
echo %%a
)
pause
এখানে, "tokens=*" ফাইলের প্রতিটি লাইনে থাকা পুরো স্ট্রিংকে %%a ভেরিয়েবলে ধারণ করবে এবং তা স্ক্রিনে প্রিন্ট করবে।
আউটপুট:
apple
banana
cherry
উদাহরণ ২: টেক্সট ফাইল থেকে নির্দিষ্ট কলাম বা তথ্য বের করা
ধরা যাক, আপনার কাছে একটি CSV (Comma Separated Values) ফাইল রয়েছে এবং আপনি সেখানে থেকে কিছু নির্দিষ্ট কলামের ডেটা বের করতে চান।
টেক্সট ফাইল: data.csv
apple,10
banana,20
cherry,30
এখানে আপনি প্রথম কলাম (ফল) এবং দ্বিতীয় কলাম (পরিমাণ) আলাদা করতে চান।
Batch Script:
@echo off
for /f "tokens=1,2 delims=," %%a in (data.csv) do (
echo Item: %%a, Quantity: %%b
)
pause
এখানে:
- tokens=1,2: এই অপশনটি প্রথম এবং দ্বিতীয় কলাম আলাদা করতে সাহায্য করবে।
- delims=,: এটি কমাকে (
,) ডেলিমিটার হিসেবে ব্যবহার করবে।
আউটপুট:
Item: apple, Quantity: 10
Item: banana, Quantity: 20
Item: cherry, Quantity: 30
উদাহরণ ৩: একটি নির্দিষ্ট শব্দ বা স্ট্রিং খুঁজে বের করা
Batch Script-এ আপনি findstr কমান্ড ব্যবহার করে ফাইল থেকে নির্দিষ্ট শব্দ বা স্ট্রিং খুঁজে বের করতে পারেন।
টেক্সট ফাইল: data.txt
apple
banana
cherry
orange
এখন আপনি ফাইলটিতে "banana" শব্দটি খুঁজে বের করতে চান।
Batch Script:
@echo off
findstr "banana" data.txt
pause
এটি data.txt ফাইলের মধ্যে "banana" শব্দটি খুঁজে বের করবে এবং তা স্ক্রিনে দেখাবে।
আউটপুট:
banana
উদাহরণ ৪: ফাইলের শিরোনাম (Header) বাদে ডেটা বের করা
কিছু সময় ফাইলে শিরোনাম বা হেডার থাকে, যেটি আপনি প্রক্রিয়া করতে চান না। Batch Script-এ skip অপশন ব্যবহার করে আপনি প্রথম কয়েকটি লাইন (যেমন শিরোনাম) বাদ দিয়ে পরবর্তী ডেটা প্রক্রিয়া করতে পারেন।
টেক্সট ফাইল: data.csv
Item,Quantity
apple,10
banana,20
cherry,30
এখানে আপনি শিরোনামটি বাদ দিয়ে ডেটা বের করতে চান।
Batch Script:
@echo off
for /f "skip=1 tokens=1,2 delims=," %%a in (data.csv) do (
echo Item: %%a, Quantity: %%b
)
pause
এখানে, skip=1 নির্দেশনা দিয়ে শিরোনাম (প্রথম লাইন) বাদ দেওয়া হয়েছে এবং বাকি লাইনগুলি প্রক্রিয়া করা হচ্ছে।
আউটপুট:
Item: apple, Quantity: 10
Item: banana, Quantity: 20
Item: cherry, Quantity: 30
উদাহরণ ৫: একাধিক ফাইল থেকে ডেটা বের করা
একাধিক টেক্সট ফাইলের ডেটা বের করার জন্য আপনি for কমান্ডের মধ্যে একাধিক ফাইল পাথ ব্যবহার করতে পারেন।
Batch Script:
@echo off
for %%f in (file1.txt file2.txt file3.txt) do (
for /f "tokens=*" %%a in (%%f) do (
echo %%a
)
)
pause
এখানে, for %%f একাধিক ফাইলের জন্য লুপ চালাবে এবং প্রতিটি ফাইলের লাইন অনুযায়ী ডেটা প্রিন্ট করবে।
সারাংশ
Batch Script-এ for /f কমান্ড ব্যবহার করে টেক্সট ফাইল থেকে ডেটা বের করা একটি শক্তিশালী টুল। আপনি টেক্সট ফাইলের প্রতিটি লাইন পড়তে, নির্দিষ্ট ডেলিমিটার দ্বারা ডেটা বিভক্ত করতে, নির্দিষ্ট কলাম বা তথ্য বের করতে, এবং এমনকি নির্দিষ্ট স্ট্রিং খুঁজে বের করতে পারেন। findstr কমান্ড ব্যবহার করে আপনি কোনো নির্দিষ্ট শব্দ বা স্ট্রিং খুঁজে বের করতে সক্ষম হবেন। Batch Script আপনাকে সহজেই ফাইল থেকে তথ্য প্রক্রিয়া এবং প্রয়োজনীয় ডেটা বের করার সুযোগ দেয়।
Read more